package com.spremoteservice.android;

import java.io.IOException;
import jcifs.ntlmssp.Type1Message;
import jcifs.ntlmssp.Type2Message;
import jcifs.ntlmssp.Type3Message;
import jcifs.util.Base64;
import org.apache.http.impl.auth.NTLMEngine;
import org.apache.http.impl.auth.NTLMEngineException;


//JCIFSEngine 
class JCIFSEngine implements NTLMEngine {

  public String generateType1Msg(
          String domain, 
          String workstation) throws NTLMEngineException {

      Type1Message t1m = new Type1Message(
              Type1Message.getDefaultFlags(),
              domain,
              workstation);
      return Base64.encode(t1m.toByteArray());
  }

  public String generateType3Msg(
          String username, 
          String password, 
          String domain,
          String workstation, 
          String challenge) throws NTLMEngineException {
      Type2Message t2m;
      try {
          t2m = new Type2Message(Base64.decode(challenge));
      } catch (IOException ex) {
          throw new NTLMEngineException("Invalid Type2 message", ex);
      }
      Type3Message t3m = new Type3Message(
              t2m, 
              password, 
              domain, 
              username, 
              workstation, 0);
      return Base64.encode(t3m.toByteArray());
  }

}
